﻿using ShevaEngine.Core.Modules.Graphics;
using Microsoft.Xna.Framework;
using System.Collections.Generic;

namespace ShevaEngine.Core.Modules.Renderer
{
    /// <summary>
    /// Rendering pipeline.
    /// </summary>
    public class RenderingPipeline
    {
        /// <summary>Opaque objects.</summary>
        public SortedDictionary<DrawCallKey, List<DrawCallPipeline>> OpaqueObjects;

        /// <summary>
        /// Constructor.
        /// </summary>
        public RenderingPipeline()
        {
            this.OpaqueObjects = new SortedDictionary<DrawCallKey, List<DrawCallPipeline>>(
                new DrawCallKeyComparer());
        }

        /// <summary>
        /// Method adds graphics object in renderer pipeline.
        /// </summary>
        /// <param name="key"></param>
        /// <param name="drawCall"></param>
        /// <param name="world"></param>
        public void AddOpaqueGraphicsObject(DrawCallKey key, DrawCall drawCall, Matrix worldMatrix)
        {

        }
    }
}
